home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1997 December / PC Pro December 1997 CD-Rom coverdisc.iso / symantec / dbAnywh / JAVA.BIN / CLASSES.ZIP / sun / tools / tree / NaryExpression.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-14  |  1.7 KB  |  63 lines

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import sun.tools.java.Constants;
  5. import sun.tools.java.Type;
  6.  
  7. public class NaryExpression extends UnaryExpression {
  8.    Expression[] args;
  9.  
  10.    NaryExpression(int var1, int var2, Type var3, Expression var4, Expression[] var5) {
  11.       super(var1, var2, var3, var4);
  12.       this.args = var5;
  13.    }
  14.  
  15.    public Expression copyInline(Context var1) {
  16.       NaryExpression var2 = (NaryExpression)((Node)this).clone();
  17.       if (super.right != null) {
  18.          var2.right = super.right.copyInline(var1);
  19.       }
  20.  
  21.       var2.args = new Expression[this.args.length];
  22.  
  23.       for(int var3 = 0; var3 < this.args.length; ++var3) {
  24.          if (this.args[var3] != null) {
  25.             var2.args[var3] = this.args[var3].copyInline(var1);
  26.          }
  27.       }
  28.  
  29.       return var2;
  30.    }
  31.  
  32.    public int costInline(int var1) {
  33.       int var2 = 3 + (super.right != null ? super.right.costInline(var1) : 0);
  34.  
  35.       for(int var3 = 0; var3 < this.args.length && var2 < var1; ++var3) {
  36.          if (this.args[var3] != null) {
  37.             var2 += this.args[var3].costInline(var1);
  38.          }
  39.       }
  40.  
  41.       return var2;
  42.    }
  43.  
  44.    public void print(PrintStream var1) {
  45.       var1.print("(" + Constants.opNames[super.op] + "#" + this.hashCode());
  46.       if (super.right != null) {
  47.          var1.print(" ");
  48.          super.right.print(var1);
  49.       }
  50.  
  51.       for(int var2 = 0; var2 < this.args.length; ++var2) {
  52.          var1.print(" ");
  53.          if (this.args[var2] != null) {
  54.             this.args[var2].print(var1);
  55.          } else {
  56.             var1.print("<null>");
  57.          }
  58.       }
  59.  
  60.       var1.print(")");
  61.    }
  62. }
  63.